package com.tongzhan.service;

import com.tongzhan.base.Return;
import com.tongzhan.entity.religion.Inspection;
import com.tongzhan.entity.religion.Rectification;

public interface InspectionService {

    /**
     * 新增电力上报
     *
     * @param userId
     * @param inspection
     * @return
     */
    Return newInspectReport(String userId, Inspection inspection);

    /**
     * 获取安全上报、电力上报或消防上报列表
     *
     * @param userId
     * @param timeSlot
     * @param state
     * @param type
     * @param page
     * @param size
     * @param flag
     * @return
     */
    Return getInspectList(String userId, String timeSlot, String state, Integer type, Integer page, Integer size, String flag);

    /**
     * 巡查详情
     *
     * @param inspectionCode
     * @return
     */
    Return inspectDetails(String inspectionCode);

    /**
     * 编辑问题类型
     *
     *
     * @param typeCode
     * @param problemTypeCode
     * @param problemTypeName
     * @return
     */
    Return editProblemType(String typeCode, String problemTypeCode, String problemTypeName);

    /**
     * 获取问题类型列表
     *
     * @return
     * @param typeCode
     */
    Return getProblemTypeList(String typeCode);

    /**
     * 删除问题类型
     *
     * @param problemTypeCode
     * @return
     */
    Return deleteProblemType(String problemTypeCode);

    /**
     * 根据类型编码获取问题列表
     *
     * @param typeCode
     * @return
     */
    Return getProblemList(String typeCode);

    /**
     * 编辑问题
     *
     * @param problemCode
     * @param problemTypeCode
     * @param problemName
     * @param opinion
     * @return
     */
    Return editProblem(String problemCode, String problemTypeCode, String problemName, String opinion);

    /**
     * 删除问题
     *
     * @param problemCode
     * @return
     */
    Return deleteProblem(String problemCode);

    /**
     * 获取巡查类型列表
     *
     * @return
     */
    Return getTypeList();

    /**
     * 整改
     *
     * @param rectification
     * @return
     */
    Return rectification(Rectification rectification);

    /**
     * 未上报统计
     *
     * @param time
     * @param week
     * @param type
     * @return
     */
    Return selectNotReported(String time, Integer week, Integer type);

    /**
     * 删除巡检信息
     *
     * @param inspectionCode
     * @return
     */
    Return delete(String inspectionCode);
}
